package com.ruoyi.member.service;

import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.ruoyi.db.domain.MemberBaseInfo;

/**
 * 用户基本信息Service接口
 * 
 * @author ruoyi
 * @date 2023-08-22
 */
public interface IMemberBaseInfoService 
{
    /**
     * 查询用户基本信息
     * 
     * @param uid 用户基本信息主键
     * @return 用户基本信息
     */
    public MemberBaseInfo selectMemberBaseInfoByUid(Long uid);
    public List<Map<String, Object>> selectMemberBaseInfoByChannelCode(MemberBaseInfo memberBaseInfo);

    public MemberBaseInfo selectPhoneByUid(Long uid);
    public MemberBaseInfo selectUidByPhone(String phone);

    /**
     * 查询用户基本信息列表
     * 
     * @param memberBaseInfo 用户基本信息
     * @return 用户基本信息集合
     */
    public List<MemberBaseInfo> selectMemberBaseInfoList(MemberBaseInfo memberBaseInfo);
    public List<Map<String, Object>> selectMemberBaseInfoMapList(MemberBaseInfo memberBaseInfo);

    /**
     * 新增用户基本信息
     * 
     * @param memberBaseInfo 用户基本信息
     * @return 结果
     */
    public int insertMemberBaseInfo(MemberBaseInfo memberBaseInfo);

    /**
     * 修改用户基本信息
     * 
     * @param memberBaseInfo 用户基本信息
     * @return 结果
     */
    public int updateMemberBaseInfo(MemberBaseInfo memberBaseInfo);

    /**
     * 批量删除用户基本信息
     * 
     * @param uids 需要删除的用户基本信息主键集合
     * @return 结果
     */
    public int deleteMemberBaseInfoByUids(Long[] uids);

    /**
     * 删除用户基本信息信息
     * 
     * @param uid 用户基本信息主键
     * @return 结果
     */
    public int deleteMemberBaseInfoByUid(Long uid);

    List<Map<String, Object>> authAndSourceList(String startDate, String endDate,String regAppCode);

    List<Map<String, Object>> authAndSourceByWeekList(String startDate, String endDate, String regAppCode);
}
